home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / comm2 / zpont311.lha / zpoint-3.11 / Rexx / ReadNextMessage.ttx < prev    next >
Text File  |  1995-03-09  |  6KB  |  200 lines

  1. /*
  2.    ReadNextMessage.ttx 1.11 (23 Feb 1994) von M.Pietz (M_PIETZ@HOT.GUN.DE)
  3.  
  4.    ARexx skript für Zodiac's Point V37.116ß und TurboText
  5.  
  6. Zweck:
  7. ------
  8.    Nachrichten lesen ohne dauernd zwischen
  9.    Reader und Brett-Menue 'hinundherzuzappen'..
  10.  
  11.    Dieses Script hat 3 Parameter:
  12.    ZPScreen - Name des ZPoint Ports
  13.    Type -     String 'ANY' oder 'NEW' je nachdem ob die nächste Nachricht
  14.               oder die nächste neue Nachricht gelesen werden soll
  15.    Richtung - STRING 'UP' oder 'DOWN' für die Richtung in die nach
  16.               Nachrichten gesucht werden soll
  17.  
  18. Installation:
  19. -------------
  20.  Dieses Skript und das Script 'ReadMessage.ttx'
  21.    ins Rexx: Verzeichnis kopieren.
  22.  ZP:
  23.    Turbotext als Reader eintragen
  24.    z.b.:
  25.     sys:wbstartup/ttx %s SCREEN %s
  26.  Turbotext:
  27.    Skript auf einer F-Taste oder einen Menupunkt installieren.
  28.    z.b. belegen diese Befehle den Nummernblock :
  29.     NUM_PAD-5 ExecARexxMacro "Rexx:ReadMessage.ttx ZPoint"
  30.     NUM_PAD-+ ExecARexxMacro "Rexx:ReadNextMessage.ttx ZPoint ANY DOWN"
  31.     NUM_PAD-2 ExecARexxMacro "Rexx:ReadNextMessage.ttx ZPoint NEW DOWN"
  32.     NUM_PAD-- ExecARexxMacro "Rexx:ReadNextMessage.ttx ZPoint ANY UP"
  33.     NUM_PAD-8 ExecARexxMacro "Rexx:ReadNextMessage.ttx ZPoint NEW UP"
  34.  
  35. Bedienung:
  36. ----------
  37.    In einem Brett die erste neue Nachricht mittels RETURN lesen,
  38.    danach in TTX mittels dieses Scripts alle weiteren Nachrichten
  39.    direkt lesen.
  40. */
  41.  
  42. OPTIONS RESULTS
  43. PARSE ARG ZPScreen Type Richtung
  44.  
  45. ende = 0
  46.  
  47. if Type = "" then Type = "ANY"
  48. if Richtung = "" then Richtung "DOWN"
  49.  
  50. ADDRESS VALUE ZPScreen
  51.  
  52. WHICHLEVEL
  53. if RESULT ~= "BOARD" then do    /* Wenn vom Hauptmenu oder Boardmenu */
  54.    BOARDMENU                    /* das Script aufgerufen wird        */
  55.    if Type = "ANY" then ENTERBOARD
  56.    else do
  57.       JUMPTOBOARD 1             /* Auf die erste neue Message gehen */
  58.       JUMPTONEW
  59.       ENTERBOARD
  60.    end
  61. end
  62. else do
  63.    /* naechste neue Nachricht finden */
  64.    if Type = "NEW" then do
  65.       /*JUMPTONEW Richtung*/
  66.       if Richtung = "UP" then JUMPTONEW UP
  67.       else JUMPTONEW DOWN
  68.    end
  69.    else  do
  70.       if Richtung = "UP" then UP
  71.       else DOWN
  72.    end
  73.    /* haben wir eine Nachricht gefunden? */
  74.    if rc = 0 then do   /* Nein, Erst Brett mit neuen Nachrichten suchen */
  75.       REQUESTRESPONSE "Keine neuen Nachrichten. Nächstes Brett ?"
  76.       if RC = 1 then
  77.          ende = next_board()
  78.       else do
  79.          ende = 1
  80.       end
  81.    end
  82. end
  83.  
  84. /* Wenn nichts schief gelaufen ist, jetzt Message einladen */
  85. /* dazu wird das ARexxscript ReadMessage.ttx gestartet     */
  86. if ende = 0 then do
  87.    Call ReadMessage ZPScreen
  88.    MARKASOLD
  89. end
  90.  
  91. exit
  92.  
  93. /* Unterroutine */
  94. next_board:
  95.     BOARDMENU         /* zur nächsten neuen Nachricht */
  96.  
  97.     if Type = "NEW" then do
  98.        /*JUMPTONEW Richtung*/
  99.       if Richtung = "UP" then JUMPTONEW UP
  100.       else JUMPTONEW DOWN
  101.     end
  102.     else  do
  103.       if Richtung = "UP" then UP
  104.       else DOWN
  105.     end
  106.  
  107.     if RC = 0 then do
  108.       REQUESTNOTIFY "Keine weiteren Bretter mit neuen Nachrichten!"
  109.       return(1)        /* Schleife abbrechen */
  110.     end
  111.     else do
  112.       ENTERBOARD
  113.     end
  114. return(0)
  115. -------------Schipp--------------------------------------------------------
  116. /* $VER: 1.32 ReadMessage.ttx (23 Feb 1994)          */
  117. /* ARexx Script für ZPoint V37.116 & Turbotext       */
  118. /* geschrieben von Markus Pietz (M_PIETZ@HOT.GUN.DE) */
  119. /* Liest die akt. Message in das aktive Window von   */
  120. /* Turbotext ein. */
  121.  
  122. options results
  123. parse arg ZPScreen
  124.  
  125. if ZPScreen = "" then ZPScreen = "ZPoint"
  126. address VALUE ZPScreen
  127.  
  128. MESSAGEINFO TYPE
  129.  
  130. if RESULT = "TEXT" then do  /* Eine Textdatei */
  131.     MESSAGEINFO AUTHOR      /* Informationen über die Message sammeln */
  132.     von = RESULT            /* für den TextHeader */
  133.     MESSAGEINFO SUBJECT
  134.     betr = RESULT
  135.     MESSAGEINFO RECEIVER
  136.     empf = RESULT
  137.     MESSAGEINFO ROUTE
  138.     weg = RESULT
  139.  
  140.     SAVEMESSAGEBODYTOCLIP     /* akt. Message ins Clipboard */
  141.     if RC=1 then do
  142.         /* An TTX-Hauptprozess wenden um den Namen des ARexxports
  143.            des aktiven Fensters zuerfahren */
  144.         address VALUE "TURBOTEXT"
  145.         ActivateLastDoc       /* Letztes aktive TTX Fenster */
  146.                               /* nach vorne bringen         */
  147.         TTX_Port = RESULT     /* ARexxPortname des Fensters */
  148.         address VALUE TTX_Port
  149.         SetDisplayLock On
  150.         SetReadOnly OFF       /* Schreibschutz entfernen */
  151.         ClearFile QUIET       /* geladenes File löschen */
  152.  
  153.         Text "Von :" von      /* eigenen Header einfügen */
  154.         InsertLine NoBreak Indent
  155.         Text "Betr:" betr
  156.         InsertLine NoBreak Indent
  157.         Text "An  :" empf
  158.         InsertLine NoBreak Indent
  159.         Text "Weg :" weg
  160.         InsertLine NoBreak Indent
  161.         InsertLine NoBreak Indent
  162.         SetBookmark 199
  163.         PasteClip             /* Message vom Clipboard laden */
  164.         MoveBookmark 199      /* zum Textanfang gehen */
  165.         Killspezial()
  166.         SetReadOnly ON        /* Schreibschutz wieder aktiv */
  167.         MoveBookmark 199      /* zum Textanfang gehen */
  168.         MoveSOL
  169.         SetDisplayLock OFF
  170.     end
  171.     else do
  172.       REQUESTNOTIFY "Konnte Message nicht einlesen!"
  173.     end
  174. end
  175. else do
  176.     REQUESTNOTIFY "Binär Message !"
  177. end
  178.  
  179. exit
  180.  
  181. /* 'CR' am Ende jeder Zeile der Message löschen */
  182. Killspezial:
  183.     RecordMacro QUIET   /* TTX Macroaufzeichnung EIN */
  184.      MOVEEOL            /* EndOfLine */
  185.      MOVELEFT
  186.      DELETE             /* Einen Buchstaben löschen */
  187.      MOVESOL            /* StartOfLine */
  188.      MOVEDOWN
  189.     EndMacro
  190.  
  191.     GetCursorPos
  192.     PARSE VAR RESULT CurLine x
  193.     GetFileInfo
  194.     PARSE VAR RESULT AllLine x
  195.  
  196.     /* Auf alle Zeilen der Message anwenden */
  197.     PlayMacro ((AllLine-CurLine))
  198.  
  199. Return(0)
  200.